MongoError: Cursor not found
1つのcursorを長時間回していると発生する
MongoError
batch処理
などで発生する
Mongoose 8やMongoDB 8では
MongoServerError: Cursor id (id) not found
という名前のエラーになっている
addCursorFlag('noCursorTimeout', true)
である程度は解決できるが
https://mongoosejs.com/docs/api/querycursor.html#querycursor_QueryCursor-addCursorFlag
http://mongodb.github.io/node-mongodb-native/2.2/api/Cursor.html#addCursorFlag
https://github.com/nota/scrapbox/pull/4175
安易に頼らない方がいい
shokai.icon
特にbatch処理では、どうしても必要なケースもあるが
そもそも、どう対策してもMongoDBのfail overやclusterの構成変更時などに発生するものなので、
レジューム
や
リトライ
等の戦略から練っておく必要がある
詳しくは
MongoDBのCursor not foundエラーやnoCursorTimeoutオプションとの向き合い方
にまとめた
shokai.icon